package com.liukai.todo_android.common.api;

import com.liukai.todo_android.entity.vo.InsertItemVo;
import com.liukai.todo_android.entity.Resp;
import com.liukai.todo_android.entity.vo.UpdateItemVo;

import java.util.Map;

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.DELETE;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Part;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;

/**
 * @author ：liukai
 * @date ：Created in 2021/8/11 11:06 上午
 * @description：todo相关的后台相关请求的API
 * @modified By：
 * @version: $
 */
public interface TodoAPI {

    /**
     * 新增
     *
     * @param insertScheduleVo
     * @return
     */
    @POST("/item")
    Call<Resp> addSchedule(@Body InsertItemVo insertScheduleVo);

    /**
     * 修改
     *
     * @param updateItemVo
     * @return
     */
    @PUT("/item")
    Call<Resp> updateSchedule(@Body UpdateItemVo updateItemVo);

    /**
     * 条件分页查询
     *
     * @param scheduleQueryVo
     * @param queryVo
     * @return
     */
    @GET("/schedule/getSchedulesByCondition")
    @Deprecated
    Call<Resp> getSchedulesByCondition(@QueryMap Map<String, Object> scheduleQueryVo,
                                       @QueryMap Map<String, Object> queryVo);

    /**
     * 根据id删除
     *
     * @param id
     * @return
     */
    @DELETE("/item/{id}")
    Call<Resp> deleteScheduleById(@Path("id") Long id);

    /**
     * 根据id删除
     *
     * @param id
     * @return
     */
    @GET("/item/{id}")
    Call<Resp> getItemById(@Path("id") Long id);

    /**
     * 条件分页查询
     *
     * @param condition
     * @param queryPage
     * @return
     */
    @GET("/item/searchItems")
    Call<Resp> searchItems(@QueryMap Map<String, Object> condition,
                           @QueryMap Map<String, Object> queryPage);

    /**
     * 设为已完成
     *
     * @param id
     * @return
     */
    @PUT("/item/finish/{id}")
    Call<Resp> setItemFinish(@Path("id") Long id);

    /**
     * 设为未完成
     *
     * @param id
     * @return
     */
    @PUT("/item/unfinish/{id}")
    Call<Resp> setItemNotFinish(@Path("id") Long id);


}
